package presentacion.Motor;

import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

import negocio.Motor.TransferMotor;

import presentacion.Controlador.Controlador;
import presentacion.Controlador.Eventos;

public class PanelMotor extends JPanel {

	/**
	 * 
	 */
	private static final long serialVersionUID = 6969237195176160812L;
	private JButton nuevoMotor, eliminarMotor, buscarMotor , actualizarMotor;
	
	
	public PanelMotor(){
		
		this.nuevoMotor = new JButton("Nuevo Motor");
		this.eliminarMotor = new JButton("Eliminar Motor");
		this.buscarMotor = new JButton("Buscar Motor");
		this.actualizarMotor = new JButton("Actualizar Motor");
		
		this.setLayout(new GridLayout(2,2, 2,2));
		this.add(this.nuevoMotor);
		this.add(this.eliminarMotor);
		this.add(this.buscarMotor);
		this.add(this.actualizarMotor);
		
		
		final JTextField tCilindrada = new JTextField(20);
		final JTextField tGasolina= new JTextField(20);
		final JTextField tID= new JTextField(20);

		final JLabel lId =  new JLabel("ID DEL MOTOR: ");
		final JLabel lCilindrada =  new JLabel("CILINDRADA:");
		final JLabel lGas = new JLabel("TIPO DE GASOLINA:");
			
		
		final Controlador c = Controlador.getInstancia();
		
		this.nuevoMotor.addActionListener(new ActionListener() {					
			@Override
			public void actionPerformed(ActionEvent arg0) {
				
				JFrame ventana = new JFrame("NUEVO MOTOR");
				JButton boton =  new JButton("CREAR");
				
				ventana.setLayout(new FlowLayout());
				ventana.add(lCilindrada);
				ventana.add(tCilindrada);
				ventana.add(lGas);
				ventana.add(tGasolina);
				ventana.add(boton);
				
				ventana.pack();
				ventana.setVisible(true);
				ventana.setLocationRelativeTo(null);
				
				boton.addActionListener(new ActionListener() {					
					@Override
					public void actionPerformed(ActionEvent arg0) {
						if(tCilindrada.getText().compareTo("")==0)
							JOptionPane.showMessageDialog(null,"No se ha introducido la cilindrada");
						else if(tGasolina.getText().compareTo("")==0)
							JOptionPane.showMessageDialog(null,"No se ha introducido el tipo degasolina");
						else{
						TransferMotor tMotor = new TransferMotor(tCilindrada.getText(), tGasolina.getText());
						c.accionMotor(Eventos.crearMotor, tMotor);
						}
					}
				});								
			}
		});
		
		this.eliminarMotor.addActionListener(new ActionListener() {					
			@Override
			public void actionPerformed(ActionEvent arg0) {
				
				JFrame ventana = new JFrame("ELIMINAR MOTOR");
				JButton boton =  new JButton("ELIMINAR");
				
				ventana.setLayout(new FlowLayout());
				ventana.add(lId);
				ventana.add(tID);
				ventana.add(boton);
				
				ventana.pack();
				ventana.setVisible(true);
				ventana.setLocationRelativeTo(null);
				
				boton.addActionListener(new ActionListener() {					
					@Override
					public void actionPerformed(ActionEvent arg0) {
						if(tID.getText().compareToIgnoreCase("")==0)
						{
							JOptionPane.showMessageDialog(null,"No se ha introducido la ID");
						}
						else{
							try{
								TransferMotor tMotor = new TransferMotor(Integer.parseInt(tID.getText()));
								c.accionMotor(Eventos.eliminarMotor, tMotor);
							}catch(NumberFormatException e)
							{
							  JOptionPane.showMessageDialog(null,"formato de ID de marca inadecuado");	
							}
						}											
					}
				});	
			}
		});
		
		this.buscarMotor.addActionListener(new ActionListener() {					
			@Override
			public void actionPerformed(ActionEvent arg0) {
				
				JFrame ventana = new JFrame("BUSCAR MOTOR");
				JButton boton =  new JButton("BUSCAR");
				
				ventana.setLayout(new FlowLayout());
				ventana.add(lId);
				ventana.add(tID);
				ventana.add(boton);
				
				ventana.pack();
				ventana.setVisible(true);
				ventana.setLocationRelativeTo(null);
				
				boton.addActionListener(new ActionListener() {					
					@Override
					public void actionPerformed(ActionEvent arg0) {
						if(tID.getText().compareToIgnoreCase("")==0)
						{
							JOptionPane.showMessageDialog(null,"No se ha introducido la ID");
						}
						else{
							try{
								TransferMotor tMotor = new TransferMotor(Integer.parseInt(tID.getText()));
								c.accionMotor(Eventos.buscarMotor, tMotor);
							}catch(NumberFormatException e)
							{
							  JOptionPane.showMessageDialog(null,"formato de ID de marca inadecuado");	
							}
						}					
					}
				});							
			}
		});
		
		this.actualizarMotor.addActionListener(new ActionListener() {					
			@Override
			public void actionPerformed(ActionEvent arg0) {
				
				JFrame ventana = new JFrame("ACTUALIZAR MOTOR");
				JButton boton =  new JButton("ACTUALIZAR");
				
				ventana.setLayout(new FlowLayout());
				ventana.add(lId);
				ventana.add(tID);
				ventana.add(lCilindrada);
				ventana.add(tCilindrada);
				ventana.add(lGas);
				ventana.add(tGasolina);
				ventana.add(boton);
				
				ventana.pack();
				ventana.setVisible(true);
				ventana.setLocationRelativeTo(null);
				
				boton.addActionListener(new ActionListener() {					
					@Override
					public void actionPerformed(ActionEvent arg0) {
						if(tID.getText().compareToIgnoreCase("")==0)
							JOptionPane.showMessageDialog(null,"No se ha introducido la ID");
						else if(tCilindrada.getText().compareToIgnoreCase("")==0)
							JOptionPane.showMessageDialog(null,"No se ha introducido la cilindrada");
						else if(tGasolina.getText().compareToIgnoreCase("")==0)
							JOptionPane.showMessageDialog(null,"No se ha introducido el tipo de gasolina");
						else
						{
							try{
								TransferMotor tMotor = new TransferMotor(Integer.parseInt(tID.getText()),tCilindrada.getText(),tGasolina.getText());
								c.accionMotor(Eventos.actualizarMotor , tMotor);
							}catch(NumberFormatException e)
							{
							 JOptionPane.showMessageDialog(null,"formato de ID de marca inadecuado");	
							}
						}				
					}
				});
			}
		});
	}	
}
